gdk: enable rgba visuals by default
authorWilliam Jon McCann <william.jon.mccann@gmail.com>
Wed, 22 Jan 2014 23:48:45 +0000 (18:48 -0500)
committerWilliam Jon McCann <william.jon.mccann@gmail.com>
Thu, 23 Jan 2014 16:51:51 +0000 (11:51 -0500)
Unless GDK_RGBA=0 is set.

https://bugzilla.gnome.org/show_bug.cgi?id=630217

docs/reference/gtk/running.sgml
gdk/x11/gdkvisual-x11.c

index 8065e194e81f2ad8a79f48bd409ccb2c01b7ac7f..c7d2d9bc9a18aa5da1369a90864a67db69b45c05 100644 (file)
@@ -478,6 +478,15 @@ nevertheless.
   </para>
 </formalpara>
 
+<formalpara>
+  <title><envar>GDK_RGBA</envar></title>
+
+  <para>
+    Since 3.12, this environment variable can be used to prevent
+    using RGBA visuals on the X11 backend by setting GDK_RGBA=0.
+  </para>
+</formalpara>
+
 <formalpara>
   <title><envar>XDG_DATA_HOME</envar>, <envar>XDG_DATA_DIRS</envar></title>
 
index 752beb6bf8fee7a808e2473880a28beef99658a9..9bbe7e47ea88faf07a126ede464e7fbf3e976d47 100644 (file)
@@ -285,6 +285,14 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen)
         }
     }
 
+  /* prefer the RGBA visual unless GDK_RGBA=0 */
+  if (x11_screen->rgba_visual)
+    {
+      const gchar *csd_env = g_getenv ("GDK_RGBA");
+      if (g_strcmp0 (csd_env, "0") != 0)
+          x11_screen->system_visual = x11_screen->rgba_visual;
+    }
+
 #ifdef G_ENABLE_DEBUG
   if (_gdk_debug_flags & GDK_DEBUG_MISC)
     {